package com.raidan.dclog.face;

/**
 * Main purpose of this interface -- allow to display progress the same way in
 * console or windowed interfaces.
 * 
 * @author raidan
 */
public interface IVisual {

	/**
	 * Start of process
	 * 
	 * @param parallelMessaging
	 *            true if any info messages will be displayed during this
	 *            process, otherwise false
	 */
	void processStart(boolean parallelMessaging);

	/**
	 * Progress for process (must be call on every step of job)
	 * 
	 * @param current
	 *            processed items
	 * @param total
	 *            total items
	 */
	void process(int current, int total);

	/**
	 * Stop process
	 */
	void processOver();
}
